package com.woniuxy.goods.service;

import com.woniuxy.goods.entity.GoodsBrandCat;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuxy.goods.param.AddBrandCatParam;
import com.woniuxy.goods.param.AddGoodsCatParam;
import com.woniuxy.goods.param.UpdateBrandCatParam;

import java.util.List;
import java.util.Set;

/**
 * <p>
 *  服务类
 * </p>
 * 品牌、类别绑定服务层接口
 * @author ...
 * @since 2024年05月22日
 */
public interface GoodsBrandCatService extends IService<GoodsBrandCat> {

    /**
     * 绑定典当物品品牌类别
     * @param param 新增品牌类别绑定对象
     * @return 品牌类别信息集合
     * @throws Exception
     */
    List<GoodsBrandCat> addBrandCatConfig(AddBrandCatParam param) throws Exception;

    /**
     * 解绑典当物品品牌类别
     * @param ids 品牌、类别绑定信息id
     * @return
     * @throws Exception
     */
    void delBrandCatConfig(Set<Integer> ids);

    /**
     * 换绑典当物品品牌类别
     * @param param 修改品牌类别绑定对象
     * @return 品牌类别信息
     * @throws Exception
     */
    GoodsBrandCat updateBrandCatConfig(UpdateBrandCatParam param) throws Exception;

    /**
     * 通过品牌id换绑典当物品品牌类别
     * @param param 新增品牌类别绑定对象
     * @return 品牌类别信息集合
     * @throws Exception
     */
    List<GoodsBrandCat> updateBrandCatByBrandId(AddBrandCatParam param) throws Exception;

    /**
     * 通过典当物品品牌id查绑定的类别ids
     * @param brandId 品牌id
     * @return 类别id集合
     * @throws Exception
     */
    Set<Integer> findCatIdsByBrandId(Integer brandId);

    /**
     * 通过典当物品类别id查绑定的品牌ids
     * @param catId 类别id
     * @return 品牌id集合
     * @throws Exception
     */
    Set<Integer> findBrandIdsByCatId(Integer catId);
}
